package com.iris.live.services.data.repositories;

import com.iris.live.services.data.models.GroupAreaModel;
import com.iris.live.services.data.models.Lsh先享后选设置Model;
import com.iris.live.services.data.models.Lsh金融战败原因Model;
import com.iris.live.services.data.models.Lsh金融机构设置Model;
import com.iris.live.services.models.PageData;
import com.iris.live.services.models.ResultData;
import com.iris.live.services.services.FinanceService;
import org.springframework.data.repository.NoRepositoryBean;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by sxy on 2016/7/28.
 */
@NoRepositoryBean
public interface FinanceRepository {

    PageData getFinanceInfoList(int pageSize, int pageIndex, String _permit, String permit,
                                String username, String userPhone, String financeCompany, String financeStatus,
                                String financeProduct);

    PageData getFinanceProductList(int pageSize, int pageIndex, String permit,
                                   String productType, Date startDate, Date endDate, String startAnnualRate,
                                   String endAnnualRate, String code, String isValid, String permissionCode, String period, String anJieType, String IsStandard, String brand,
                                   int isDealer, String parentPermit);

    PageData getFinanceOrg(int pageSize, int pageIndex, String permit,
                           String permissionCode,String parentName);
    List getFinanceOrg(String permissionCode,String areaPermit);

    List getApplicableFinanceOrgByArea(String permissionCode);

    List getFinancePoundageList(int financeCode);
    List getFinancePoundageList_Ex(int orgCode,
                                   String permissionCode);

    PageData getFirstUseProductList(int pageSize, int pageIndex, String permit,
                                    String brand, String carCode, String carDetail, Date startDate, Date endDate,
                                    String startAnnualRate, String endAnnualRate, String param, String permissionCode);

    List getFirstUseProductDetail(int financeCode);

    PageData getFailReasonList(String permit, String permissionCode, int pageSize, int pageIndex);

    PageData getPlanList(String permit, String orderId);

    Object getFinanceInfoByID(int id);

    List getProductSuitableCarListFilterModel(int id,List<String> brands,boolean permitFlag);

    List getProductSuitableCarList(int id);

    Map getStatisticsNumber(String permissionCode);

    List getFinanceProductListBySeries(String permit, String series);

    List getFinaceProUpdateInfo(String permit);

    List getFinaceInstitutionPoundage(String permit);

    List getFinaceCodeByFinaceProCode(String proCode, String permit);

    List getFirstUseProUpdateInfo(String permit);

    PageData getFirstUseProduct(FinanceService.GetFirstUseProductListRequest request);

    List getHotLeverByCondition(FinanceService.GetHotLeverByConditionRequest request);

    boolean checkFinanceProduceIfExit(String financeProName);

    List getMaxFinanceNum();

    List getMaxFinanceNumT();

    List<Lsh先享后选设置Model> ifExitByNumAndSet(String string, Integer maxFinanceNum);

    List getfinancialIdList(String numer, String permit);


    PageData getFinancialStandardFailList(String permit, int size, int index);


    PageData getfinancialFailListByPermit(String permit, int size, int index);

    PageData findfinancialDetailitemList(String permit, String city, String dealerName, String dealerLogo, String cityAvgS, String cityAvgB, Integer pageSize, Integer pageIndex, String dates);

    PageData getTrackfinancialDetailitem(List<String> dates, String city, String dealerName, String dealerLogo, String cityAvgS, String cityAvgB, Integer pageSize, Integer pageIndex);

    //  需要 确认的
    List getFinaceCodeByorderlist(String permit);

    //拿出 所有的 annaypay
    PageData getFinancialAnnualDetailListById(String perimit, String postman, FinanceService.getfinancialFailAllListitemtwo re, int permit, int pa);

    PageData getFinancialBenzDetailListByUser(String permits, String usename, FinanceService.getfinancialFailAllListitemtwo re, int permit, int pa);

    //所有的
    PageData getFinancialCommonDetailListByUsername(String permits, String postman, FinanceService.getfinancialFailAllListitemtwo re, int permit, int pa);

    List getFinancialCommonDetailSingle(String quote);

    List getRightByUserAccount(String permit, String permissioncode);

    List getFinaceCarprice(String permits, String re);

    List getFinancialAnnualDetailSingle(String quoteId);

    List getFinancialAnnualDetailSinglebyPermitAndInitial(String quoteId);

    List getjordanonetwo(String quoteId);

    List getBenzDetailListByPermit(String quoteId);

    List getjamesonethreeandkobeone(String quoteId);

    List getSingleBenzDetail(String quoteId);

    PageData getitemByfkanddetai(FinanceService.getfinancialFailAllListitemtwothreeforss re, String permit, String o, int index, int pagesize);


    List getFailReasonList(String ids, String permit);

    List findAllFinanceFee(String bill);

    List findIsRestoreAndLoanDetail(String bill);

    List getstatusbysqls(int d);

    Map<String, String> getFinanceIdByStarId(String id);
    public List<?> findFinanceServeFreeGuidance(String permit, int year, int month);

    Map<String, String> getClientInfoAndMsgBypermit(String permit, String originQuotedId);


    List getBenzYearRateList(FinanceService.getCounter re, String permit, List<String> lists);

    List getBenzCaseSecond(FinanceService.getCounter re, String permit, List<String> lists);

    List getFinanceRateAndCarId(String oid, String permit, List<String> listStr);

    List getFinancialdetailoneByOrgs(String name, String permit);

    List getFinaceProductDetail(String name, String permit, String bianhao);

    List getLoanClientDetailByUser(String chushi, String permit);

    PageData getItemByPermitAndId(FinanceService.getfinancialFailAllListitemtwothreeforss re, String permit, String o, int index, int pagesize);

    List getRevokeInfo(String permit);

    List getRevokeLastUpdateInfo(String permit);

    List getScAndFcChatlog(FinanceService.getfinancialFailAllListitemtwothreeforss revokeInfo);


    List getLoanPageOffer(String permit, FinanceService.getfinancialFailAllListitemtwothreeforss revokeInfo);


    List getLoanApproveLog(String permit, FinanceService.getfinancialFailAllListitemtwothreeforss revokeInfo);


    List findAllRateListByorgs(String orgs, String type, String permit);

    List getFinanceOrgsAndYearRateList(String permit, String postman,
                                       FinanceService.getCounter re, List<String> listStr);

    //List saveApproveHisitoryAndFianceOrganize(String permit,FinanceService.getfinancialFailAllListitemtwothreeforss revokeInfo);
    List getSingleLoanClientFinancial(String ids, String permit, String postman);

    List getFinanceSettings(String permit, String carId, String modelSource, String modelBrand, String modelClass,
                            String modelStyle, String modelDetail, String companyId, String yearRate,
                            String loanterm, String downRate, String balRate, String type);

    List getFinanceSettingsInfo(String permit, String carId, String modelSource, String modelBrand, String modelClass,
                                String modelStyle, String modelDetail, String companyId, String yearRate,
                                String loanterm, String downRate, String balRate);


    boolean getIsBelongToOrgs(String permit, String postman,
                              FinanceService.getCounter re, List<String> listStr);

    String getLoanPeriods(String permit,String StartQuotationNumber);

    List getLastReplace(String permit);

    PageData exportFinanceAccountInfo(String permit,String cusName, String cusTel, String cusType,String companyName,String state, int pageSize, int pageIndex);

    PageData exportFinanceLoanInfo(String permit, String cusName, String cusTel, String cusType,
                                   String companyName, String state, int pageSize, int pageIndex,
                                   String applyStartDate,String applyEndDate,String applyPassStartDate,String applyPassEndDate,String loanStartDate,String loanEndDate);

    PageData exportFinanceAccountInfoOverWrite(String permit, String cusName, String cusTel, String cusType,
                                               String companyName, String state, int pageSize, int pageIndex,
                                               String applyStartDate,String applyEndDate,String applyPassStartDate,String applyPassEndDate,String loanStartDate,String loanEndDate);


    List getFinanceProduceNum(String permit, String companyId1, String companyId2, String carId, String origin, String brank, String grade, String carType, String carTypeDetail);

    List getFinanceFee(String companyId, String financeFeeType);

    PageData getSuitableArea();

    PageData getSuitableStore(Integer id);

    List getFinDefeatedReson();

    PageData getFinanceInfoByName(String name);

    List getAreaAndStorefoById(Integer id);
}
